home *** CD-ROM | disk | FTP | other *** search
/ Whiteline: delta / whiteline CD Series - delta.iso / vision / grafics / programm / scrdump / source / 0_readme.src next >
Encoding:
Text File  |  1995-11-25  |  5.8 KB  |  195 lines

  1. XALTHELP/SCRDUMP, GEMDUMP Sourcen
  2.  
  3. V1.0, 20.4.1994
  4. V1.1, 21.8.1995
  5.  
  6. geschrieben von Th. Morus Walter
  7. (c) 1994/5 by Never Ready Software, Morus Walter
  8.  
  9. Th. Morus Walter
  10. Frankenstraße 214
  11. 97078 Würzburg
  12. FEDERAL REPUBLIC of germany
  13. Tel. 0931/287055
  14.  
  15.  ------
  16.  
  17. Die Sourcen zu XALTHELP/SCRDUMP und GEMDUMP dürfen unter den folgenden
  18. Bedingungen weitergegeben, verändert und/oder ganz oder teilweise für
  19. eigene Programme verwendet werden:
  20.  
  21. 1. Weitergabe ist nur vollständig und mit dieser Datei erlaubt
  22. 2. Veränderte Versionen von XALTHELP/SCRDUMP bzw. GEMDUMP dürfen nur
  23.    weitergegeben werden, wenn hinreichend deutlich gemacht wird, daß
  24.    die Programme verändert wurden.
  25.    Änderung des Namens, Hinweise in der Dokumentation, im Programm...
  26.    Es muß in geeigneter Weise auf die ursprüngliche Urheberschaft der 
  27.    Programme hingewiesen werden.
  28.    ist in geeigneter Weise zu 
  29.    Einer Veröffentlichung geänderter Versionen ist die Kontaktaufnahme
  30.    mit mir - um die Änderung allgemein zu Übernehmen - vorzuziehen.
  31.    Adresse siehe LIESMICH.TXT zum Programm
  32. 3. die Übernahme von Programmteilen in eigene Programme ist erlaubt.
  33.    Dabei muß in geeigneter Weise auf die Verwendung meiner Routinen
  34.    und deren Urheber verwiesen werden.
  35. 4. die obigen Festlegungen sind nicht wörtlich sondern ihrem Sinne
  36.    entsprechend (was natürlich letztenende umfassender ist) zu
  37.    befolgen
  38.    (kurz: geht anständig mit meinen Quellen um)
  39.  
  40. ACHTUNG!
  41. Der Autor übernimmt keinerlei Haftung für irgendwelche Schäden.
  42. Eventuelle Fehler sind das Risiko derer, die die Sourcen verwenden.
  43.  
  44.   -----
  45.  
  46. XALTHELP/SCRDUMP und GEMDUMP wurde mit PureC 1.0 und PASM V'was weiß ich'
  47. entwickelt.
  48. Für die Verwendung anderer Compiler sind möglicherweise Anpassungen nötig.
  49. Man beachte insbesondere die Parameterübergabe in Registern von PureC.
  50.  
  51. Die Quellen enthalten echte Tabulatoren. Die Tabulatorweite mit der ich 
  52. arbeite ist 4.
  53.  
  54. Die Quellen sind dokumentiert - allerdings nur knapp.
  55.  
  56. Wer gar nichts versteht, lasse besser die Finger davon.
  57. Wer etwas nicht versteht, 
  58.     denke darüber nach.
  59. Wer etwas nicht versteht, darüber nachgedacht hat 
  60.   und es immer noch nicht versteht 
  61.     probiere es aus.
  62. Wer etwas nicht versteht, darüber nachgedacht hat, es ausprobiert hat 
  63.   und es immer noch nicht versteht
  64.     wende sich gegebenenfalls an mich.
  65.  
  66.   -----
  67.  
  68. Die Sourcen für XALTHELP/SCRDUMP und GEMDUMP sind (teilweise) gemeinsam.
  69. Unterschieden wird dann via bedingter Compilierung, für GEMDUMP muß
  70. in den Compileroptionen die Variable 'GEMDUMP' definiert werden.
  71.  
  72. Folgende Sourcen existieren:
  73. GEMDUMP.S        fehlt, kann aber aus PC_START.S erzeugt werden; s.u.
  74.                 (nur für GEMDUMP)
  75. SDUMP.C            Code für den Hauptdialog, Verwaltung des Acc's
  76.                 (GEMDUMP/SCRDUMP)
  77. SCRDUMP.C        eigentliche Speicherroutine
  78.                     für eigene Programme dürfte vor allem die
  79.                     Routine 'do_store_img' interessant sein,
  80.                     die eine durch eine MFDB beschriebene Bitmap
  81.                     in eine .IMG Datei schreibt.
  82.                 (GEMDUMP/XALTHELP)
  83. START.S            Startupcode und Assemblerroutinen (nur XALTHELP)
  84.  
  85. Die Datei GEM.H im Ordner 'include' wird via >include "GEM.H"< eingelesen,
  86. also bei den System-Include-Dateien gesucht; die Datei enthält allgemeine
  87. Makros zum Umgang mit AES-objects.
  88.  
  89. Im Ordner 'rsc' finden sich die Resource-Files, von denen aber nur der
  90. Source-Output im Programm Verwendung findet.
  91. --------------------------------------------------------------------------------
  92. --
  93. --    wir basteln uns eine Source-Datei
  94. --
  95. --------------------------------------------------------------------------------
  96. Aus urheberrechtlichen Gründen fehlt die Datei 'GD_START.S', da es sich 
  97. hierbei im Wesentlichen um die PC_START.S-Datei handelt und ich keine
  98. Lust auf Urheberrechts-Streitigkeiten mit Borland/ASH habe.
  99. Um aus der PC_START.S Datei eine GD_START.S zu machen gehe man wie folgt
  100. vor:
  101. - kopiere PC_START.S nach GD_START.S
  102. - füge bei den 'Export references' (ca. Zeile 11) ein:
  103.   XDEF ev_time,inst
  104.   XDEF do_init_vbl,do_exit_vbl,althelp,ah_time
  105. - nach 
  106.     'Start:
  107.             BRA.B    Start0'
  108.   (ca. Zeile 141) füge man ein:
  109.     ev_time:    DC.W    100
  110.                 DC.L    'TMMW'
  111.     inst:        DC.B    "C:\TEMP\SCRDUMP\SCR",0,"                    "    ; 40 Byte!!!!
  112.                 DC.B    1
  113.                 DC.B    1
  114.     even
  115.  
  116. - ans Ende der Datei füge man (vor .END) ein
  117.     ;-------------------------------
  118.     even
  119.  
  120. ;
  121. ;    vbl eintragen (wird im supervisor-modus aufgerufen)
  122. ;
  123. do_init_vbl:MOVE.W    $454,D0
  124.             LSL.W    #2,D0
  125.             MOVE.L    $456,A0
  126.             MOVEQ    #4,D1        ; ersten eintrag auslassen
  127. sloop:        TST.L    0(A0,D1)
  128.             BEQ.B    found_
  129.             ADDQ.W    #4,D1
  130.             CMP.W    D0,D1        ; genial ist die schleife aber nicht!!!
  131.             BNE.B    sloop        ; warum nicht d0 runterzählen, A0 um 4 erhöhen?
  132.  
  133.             CLR.L    D0            ; war wohl nichts
  134.             RTS                    ; ganzer vbl belegt, da kann man nichts machen
  135.  
  136. found_:        LEA        vbl,A1
  137.             MOVE.L    A1,0(A0,D1)
  138.  
  139. ; kb_shift-adresse ermitteln
  140.  
  141.             MOVE.L    $4F2,A0        ; sysbase
  142.             CLR.L    kbshift
  143.             CMP.W    #$0104,2(A0)    ; versionsnummer
  144.             BLT        no_kbshift
  145.             MOVE.L    36(A0),kbshift    ; kbshift-adresse merken (TOS1.4 required!!)
  146.  
  147. no_kbshift:    MOVEQ    #1,D0        ; war erfolgreich
  148.             RTS
  149. ;
  150. ;    vbl-routine löschen
  151. do_exit_vbl:MOVE.W    $454,D0
  152.             LSL.W    #2,D0
  153.             MOVE.L    $456,A0
  154.             MOVE.W    #4,D1
  155.             LEA        vbl,A1
  156. sloop1:        CMPA.L    0(A0,D1),A1
  157.             BEQ.S    found1
  158.             ADDQ.W    #4,D1
  159.             CMP.W    D0,D1
  160.             BNE.S    sloop1
  161.             CLR.L    D0
  162.             RTS
  163. found1:        CLR.L    0(A0,D1)
  164.             MOVEQ    #1,D0
  165.             RTS
  166.  
  167. ;
  168. ;            vbl-routine
  169. ;    ALT HELP         -> setze althelp flag, ah_time
  170. ;    CTRL ALT HELP   -> mache nichts (-> tos-hcopy) (ab tos1.4)
  171. ;    
  172. vbl:        TST.W    $4EE         ; dumpflag ?
  173.             BNE        end_vbl
  174.  
  175.             movea.l    kbshift,a0
  176.             tst.l    a0
  177.             BEQ        notest
  178.             btst    #2,(a0)    ; ctrl ??
  179.             bne        end_vbl        ; dann nichts tun
  180.  
  181. notest:        move.w    #-1,$4EE    ; habs gelesen
  182.             move.w    #1,althelp
  183.             move.l    $4ba,ah_time
  184. end_vbl:    rts
  185.  
  186. kbshift:    DC.L        0
  187.  
  188.         DATA
  189.  
  190. althelp:    DC.W        0
  191. ah_time:    DC.L        0
  192.     ;-------------------------------
  193.  
  194.